// pages/user/user.js
const DEFAULT_USER_INFO = {
  nickname: '微信用户',
  avatarUrl: '/images/avatardefault_92824.webp',
  phone: '未绑定',
  gender: '保密'
};

Page({
  /**
   * 页面的初始数据
   */
  data: {
    userInfo: null,
    isLogin: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    this.checkLoginStatus();
  },

  /**
   * 更新用户信息
   */
  updateUserInfo(data) {
    this.setData({
      isLogin: true,
      userInfo: {
        nickname: data.nickname || DEFAULT_USER_INFO.nickname,
        avatarUrl: data.avatarUrl || DEFAULT_USER_INFO.avatarUrl,
        phone: data.phone || DEFAULT_USER_INFO.phone,
        gender: data.gender === 1 ? '男' : (data.gender === 2 ? '女' : '保密')
      }
    });
  },

  /**
   * 登录流程处理
   */
  handleLogin() {
    wx.showLoading({ title: '登录中...' });

    wx.login({
      success: (loginRes) => {
        if (loginRes.code) {
          wx.request({
            url: 'http://121.41.13.49:8081/user/user/login',
            method: 'POST',
            data: { code: loginRes.code },
            success: (result) => {
              const resData = result.data;
              console.log('登录响应数据：', resData);
              
              if (resData.code === 1) {
                // 保存 token 和更新用户信息
                wx.setStorageSync('token', resData.data.token);
                this.updateUserInfo(resData.data);

                wx.showToast({ title: '登录成功', icon: 'success' });
              } else {
                console.log('登录失败原因：', resData);
                wx.showToast({ 
                  title: `登录失败: ${resData.msg || '未知错误'}`, 
                  icon: 'none',
                  duration: 2000
                });
              }
            },
            fail: (error) => {
              console.log('请求失败：', error);
              wx.showToast({ title: '服务器请求失败，请重试', icon: 'none' });
            },
            complete: () => {
              wx.hideLoading();
            }
          });
        } else {
          wx.showToast({ title: '获取登录凭证失败', icon: 'none' });
        }
      },
      fail: () => {
        wx.showToast({ title: '微信登录失败，请重试', icon: 'none' });
      }
    });
  },

  /**
   * 登出流程处理
   */
  handleLogout() {
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          wx.removeStorageSync('token');
          this.setData({ isLogin: false, userInfo: null });
          wx.showToast({ title: '已退出登录', icon: 'success' });
        }
      }
    });
  },

  /**
   * 检查登录状态
   */
  checkLoginStatus() {
    const token = wx.getStorageSync('token');
    if (token) {
      wx.request({
        url: 'http://121.41.13.49:8081/user/validateToken',
        method: 'POST',
        data: { token },
        success: (res) => {
          if (res.data.code === 0) {
            this.updateUserInfo(res.data.data);
          } else {
            wx.removeStorageSync('token');
            this.setData({ isLogin: false, userInfo: null });
          }
        },
        fail: () => {
          wx.showToast({ title: '验证登录状态失败，请重试', icon: 'none' });
        }
      });
    }
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    wx.showToast({ title: '刷新中...', icon: 'loading' });
    this.checkLoginStatus();
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // 可根据需求增加加载更多数据的逻辑
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '分享标题',
      path: '/pages/user/user'
    };
  },
  /**
   * 返回上一页
   */
  goBack: function() {
    wx.navigateBack({
      delta: 1, // 返回的页面数
      success: function(res) {
        console.log('返回成功');
      },
      fail: function(err) {
        console.error('返回失败', err);
      }
    });
  }
});
